{
  /*
    学习目标：多个泛型变量
    作用：同时定义多个，代表不同位置的参数类型
  */

  function getValueByName<T, K extends keyof T>(form: T, keyName: K) {
    return form[keyName];
  }

  // 期望：为函数添加类型，
  // 效果：第二个参数能限定取值范围
  const res1 = getValueByName({ name1: 'zs', age1: 18 }, 'name1');
  const res2 = getValueByName({ name2: 'zs', age2: 18 }, 'age2');
  const res3 = getValueByName({ name3: 'zs', age3: 18 }, 'age3');
}
